package com.doctcloud.hisinfo.histable.enums;


import lombok.Getter;

/**
 * 院区标记枚举类
 * 映射 hospitalId 字段的编码与院区名称
 */
@Getter
public enum HospitalAreaEnum {

    /**
     * 杨浦院区
     */
    YANGPU("0", "杨浦"),

    /**
     * 安亭院区
     */
    ANTING("1", "安亭"),

    /**
     * 通用院区（默认值）
     */
    GENERAL("*", "通用");

    /**
     * 院区标记编码（对应数据库字段值）
     */
    private final String code;

    /**
     * 院区名称（用于前端展示或日志输出）
     */
    private final String name;

    /**
     * 构造方法
     * @param code 院区编码
     * @param name 院区名称
     */
    HospitalAreaEnum(String code, String name) {
        this.code = code;
        this.name = name;
    }

    /**
     * 根据编码获取对应的枚举实例
     * @param code 院区编码（如"0"、"1"、"*"）
     * @return 对应的枚举实例，若未匹配则返回通用院区
     */
    public static HospitalAreaEnum getByCode(String code) {
        for (HospitalAreaEnum area : values()) {
            if (area.code.equals(code)) {
                return area;
            }
        }
        // 默认返回通用院区（兼容未定义的编码）
        return GENERAL;
    }

    /**
     * 根据编码获取院区名称
     * @param code 院区编码
     * @return 院区名称，默认返回"通用"
     */
    public static String getNameByCode(String code) {
        return getByCode(code).getName();
    }
}